package 蓝桥杯_2014;

import java.util.Scanner;

/*
  标题:分糖果
    有 n 个小朋友围坐成一圈。老师给每个小朋友随机发偶数个糖果,然后进行下面的游戏:
    每个小朋友都把自己的糖果分一半给左手边的孩子。
    一轮分糖后,拥有奇数颗糖的孩子由老师补给个糖果,从而变成偶数。
    反复进行这个游戏,直到所有小朋友的糖果数都相同为止
    你的任务是预在已知的初始糖果情形下,老师一共需要补发多少个糖果。
 【格式要求】
    程序首先读入一个整数 N (2<N<100),表示小朋友的人数。
    接着是一行用空格分开的 N 个偶数(每个偶数不大于1000,不小于2)
    要求程序输出一个整数,表示老师需要补发的糖果数。

    输入：
    3
    2 2 4
    程序输出：
    4
 */
public class Text08_分糖果 {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int n = input.nextInt();  // 小朋友的人数
        if ( n<2 || n>100 ) {
            return;
        }
        int[] arr = new int[n];   // 记录每个小朋友的糖果数
        int sweets;
        for (int i = 0; i < arr.length; i++) {
            arr[i] = input.nextInt();
            if ( (arr[i]) < 2 || (arr[i]>1000) || (arr[i]%2==1) ) return; // 糖果数为偶数
        }
        int sum = 0;
        while (true){
            // 分糖果
            for (int i = 1; i < arr.length-1; i++) {
                arr[i+1] = arr[i+1]/2;  // 右边小朋友分出的一半糖果
                arr[i] += arr[i+1]/2;   // 左边小朋友获取分得的糖果
                arr[i] = arr[i] / 2;
                arr[i-1] += arr[i];
                arr[i-1] = arr[i-1]/2;
                arr[i+1] += arr[i-1];
            }
            // 补发糖果
            for (int a:arr) {
                if (a%2!=0){
                    a +=1;
                    sum++;
                }
            }
            // 判断所有的小朋友糖果数是否相等
            if (check(arr)){
                System.out.println(sum);
                break;
            }
        }
    }
    public static boolean check(int[] arr){
        int m = arr[0];
        for (int i = 1; i < arr.length; i++) {
            if (arr[i]!= m) return false;
        }
        return true;
    }
}
